package pe.edu.upc.dew.Grupo1.web;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.context.support.WebApplicationContextUtils;

import pe.edu.upc.dew.Grupo1.model.Cine;
import pe.edu.upc.dew.Grupo1.model.Local;
import pe.edu.upc.dew.Grupo1.model.Pelicula;
import pe.edu.upc.dew.Grupo1.service.CineService;
import pe.edu.upc.dew.Grupo1.service.LocalService;
import pe.edu.upc.dew.Grupo1.service.PeliculaService;

public class MantPeliculaServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private PeliculaService peliculaService;
	
	@Override
	public void init(ServletConfig config) throws ServletException {
		this.peliculaService = WebApplicationContextUtils
				.getWebApplicationContext(config.getServletContext()).getBean(
						"peliculaService", PeliculaService.class);
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		HttpSession session=req.getSession();
		if(session.getAttribute("usuario") == null)
		{
			req.getRequestDispatcher("login.jsp").forward(req,resp);	
			return;
		}
		
		String paramCodigoPelicula=req.getParameter("codigoPelicula");
			
		if(paramCodigoPelicula!= null && !paramCodigoPelicula.equals(""))
		{
			int codigoPelicula=Integer.parseInt(paramCodigoPelicula);
			
			Pelicula pelicula = peliculaService.GetPeliculaPorCodigo(codigoPelicula);
			
			req.setAttribute("pelicula", pelicula);
		}
		
		req.getRequestDispatcher("mant_pel.jsp").forward(req,resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		HttpSession session=req.getSession();
		if(session == null)
		{
			req.getRequestDispatcher("login.jsp").forward(req,resp);	
			return;
		}
		
		try {
			
			
			String codigoPelicula= req.getParameter("codigo");
			String nombre= req.getParameter("nombre");
			String director=req.getParameter("director");
			String nombreOriginal=req.getParameter("nombre_original");
			String fechaEstreno=req.getParameter("fecha_estreno");
			String linkCriticas=req.getParameter("link_criticas");
			String linkPelicula=req.getParameter("link_pelicula");
			
			boolean estado=false;
			
			if(req.getParameter("estado")!= null && req.getParameter("estado").equals("on"))
			{
				estado=true;
			}
			
			String sinopsis=req.getParameter("sinposis");
			int duracionMinutos = Integer.parseInt(req.getParameter("duracion_minutos"));
			String urlImagen=req.getParameter("url_imagen");
			String linkTrailer=req.getParameter("link_trailer");
			
			Pelicula pelicula=new Pelicula();
			
			pelicula.setNombre(nombre);
			pelicula.setDirector(director);
			pelicula.setNombreOriginal(nombreOriginal);
			pelicula.setFechaEstreno(fechaEstreno);
			pelicula.setLinkCriticas(linkCriticas);
			pelicula.setLinkPelicula(linkPelicula);
			pelicula.setSinopsis(sinopsis);
			pelicula.setDuracionMinutos(duracionMinutos);
			pelicula.setEstado(estado);
			pelicula.setUrlImagen(urlImagen);
			pelicula.setLinkTrailer(linkTrailer);

			int codigo=0;
			
			if(codigoPelicula== null || codigoPelicula.equals(""))
			{
				codigo= peliculaService.GetConteoPeliculas()+1;
				pelicula.setCodigoPelicula(codigo);
				
				peliculaService.InsertPelicula(pelicula);
			}
			else{
				codigo=Integer.parseInt(codigoPelicula);
				pelicula.setCodigoPelicula(codigo);
				
				peliculaService.UpdatePeliculaPorCodigo(pelicula);
			}
			
			req.getRequestDispatcher("ListasCartelera").forward(req,resp);
		} catch (Exception e) {
			System.out.println(e.getMessage());
			req.getRequestDispatcher("error.jsp").forward(req,resp);
		}
	}

}
